import VueRouter from 'vue-router'
// 注意点，需要导入vue
import Vue from 'vue'
Vue.use(VueRouter)
// 设置路由规则
// 导入login模块
import login from '@/views/login/login.vue'
import layout from '@/views/layout/layout.vue'

import business from '@/views/layout/business/business.vue'
import chart from '@/views/layout/chart/chart.vue'
import question from '@/views/layout/question/question.vue'
import subject from '@/views/layout/subject/subject.vue'
import user from '@/views/layout/user/user.vue'
const router = new VueRouter({
    routes: [{
            path: '/',
            redirect: '/login'
        },
        {
            path: '/login',
            component: login
        },
        {
            path: '/layout',
            component: layout,
            redirect: '/layout/chart',
            children: [ //配置layout的子路由，在layout内做了一个重定向到第一个子路由
                {
                    path: '/layout/chart',
                    component: chart,
                    // 路由元信息
                    meta: {
                        title: '数据概览'
                    }
                },
                {
                    path: '/layout/user',
                    component: user,
                    meta: {
                        title: '用户列表'
                    }
                },
                {
                    path: '/layout/question',
                    component: question,
                    meta: {
                        title: '题库列表'
                    }
                },
                {
                    path: '/layout/business',
                    component: business,
                    meta: {
                        title: '企业列表'
                    }
                },
                {
                    path: '/layout/subject',
                    component: subject,
                    meta: {
                        title: '学科列表'
                    }
                },
            ]
        }
    ]
})

import Nprogress from 'nprogress'
import 'nprogress/nprogress.css'
// 设置路由守卫
// 前置守卫
router.beforeEach((to, from, next) => {
    console.log(to, from);
    //路由进入前处理
    Nprogress.start() // 进度条开始
    next() // 表示正常通过，不正常通过 next(path)
})

//  后置守卫
router.afterEach((to, from) => {
    //路由进入后的处理
    //  to ：要去的路由的路由信息
    console.log(to, from);
    document.title = '黑马面面--' + to.meta.title
    // document.getElementById('title').innerText  = '黑马面面--' + to.meta.title  可简写为上面
    Nprogress.done() // 进度条结束
})

// 已经处在该路由上，又跳转到当前这个路由的时候，有时会出现报错，这时可以百度找到这行代码加上
// const originalReplace = VueRouter.prototype.push
// VueRouter.prototype.push = function push(location) {
//      return originalReplace.call(this,location).catch(err=>err)
//  }

// 暴露接口给别人调用
export default router